package com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.annotation.NoRefreshSession;
import com.cloudbroker.bcs.common.annotation.RequiredPermissions;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.PermissionsValue;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.PageVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.back.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.customer.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.BrokerInfoForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NewsQueryForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NewsSaveForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.NoticeInfoForm;

public interface UserManagerBizService {
    
    @NoLogin
    public BrokerRegFormBackForm funcBrokerRegisterCheck(BrokerRegCheckForm form);
    
    @NoLogin
    public LoginFormBackForm funcBrokerRegister(BrokerRegForm form);

    @NoLogin
    public BatchImportBrokerBackForm funcBatchImportBroker(BatchImportBrokerListForm form);

    @NoLogin
    public LoginFormBackForm funcAccountLogin(LoginForm form);
    
    public HSBCPSBackVO funcAccountLogout(HSBCPSVO form);
    
    @NoRefreshSession
    public OnlinenumFormBackForm funcChatRoomOnlineNumByBroker(HSBCPSVO param);
    
    public RegisternumFormBackForm funcAccountRegisternum(HSBCPSVO param);
    
    public NewsSaveFormBackForm funcNewsSave(NewsSaveForm param);
    
    public NewsQueryFormBackForm funcNewsQry(NewsQueryForm param);
    
    @RequiredPermissions(value = { PermissionsValue.USER })
    public QueryAccountListFormBackForm funcAccountList(QueryAccountListForm param);

    @RequiredPermissions(value = { PermissionsValue.USER })
    public WhiteAccountListFormBackForm funcWhiteList(PageVO param);

    @RequiredPermissions(value = { PermissionsValue.USER })
    public CustomerIdFormBackForm funcAccountDetail(CustomerIdForm param);
    
    public HSBCPSBackVO funcBrokerNoticeSave(NoticeInfoForm param);
    
    @NoLogin
    public SendSMSBackForm funcAccountSendsms(SendSMSForm param);
    
    public HSBCPSBackVO funcAccountChangePassword(ChangePasswordForm param);
    
    @NoLogin
    public HSBCPSBackVO funcAccountResetPassword(ResetPasswordForm param);
    
    @NoLogin
    public ImgVerifyFormBackForm funcAccountImgverify(ImgVerifyForm param);
    
    @RequiredPermissions(value = { PermissionsValue.USER })
    public HSBCPSBackVO funcBrokerInfoUpdate(BrokerInfoForm param);
    
    @NoLogin
    public BrokerAccountListBackForm funcBrokerAccountList(QueryAccountListForm param);
    
    @NoLogin
    public BrokerAccountInfoForm funcBrokerInfo(FollowBrokerForm param);
    
    @NoLogin
    public HSBCPSBackVO funcBrokerChangeStatus(BrokerStatusChangeForm param);
    
    public HSBCPSBackVO funcWhitelistImport(WhiteListFormData mobileList);
    
    public WhiteListBackForm funcWhitelistOutput(HSBCPSVO form);
    
    public HSBCPSBackVO funcOperatorWhiteList(OperatorWhiteListForm form);

    @NoLogin
    public HSBCPSBackVO funcPachSendSms(PachSendSMSForm form);
    
    @NoLogin
    public LoginFormBackForm funcWebsiteRegister(WebsiteRegForm form);

    @NoLogin
    public TenantForm funcGetTenant(HSBCPSVO form);
    
    @NoLogin
    public RegisterOrLoginBackForm funcRegisterOrLogin(RegisterOrLoginForm form);

    public HSBCPSBackVO funcBrokerDetailUpdate(BrokerDetailForm form);
}
